// 改文件用于创建Vuex中最为核心的store
import Vue from "vue"
// 引入Vuex
import Vuex from "vuex"
// 使用Vuex插件
Vue.use(Vuex)
// 准备actions==>用于响应组件中的动作
const actions = {
    plus(context, value) {
        context.commit("PLUS", value)
    },
    reduce(context, value) {
        context.commit("REDUCE", value)
        context.dispatch("demo1", value)
    },
    plusOdd(context, value) {
        if (context.state.sum % 2) {
            context.commit("PLUS", value)
        }
    },
    plusWait(context, value) {
        setTimeout(() => {
            context.commit("PLUS", value)
        })
    },
    demo1(context, value) {
        console.log("demo1", context)
    }
}

// mutations==>用于操作数据（state）
const mutations = {
    PLUS(state, value) {
        state.sum += value
    },
    REDUCE(state, value) {
        state.sum -= value
    }
}

// state ==>用于存储数据
const state = {
    sum: 0,
    name: "SONG",
    age: 18
}

const getters = {
    bigSum(state) {
        return state.sum * 10
    }
}

// 创建store
const store = new Vuex.Store({
    actions,
    mutations,
    state,
    getters
})

export default store